package com.demo.blog.common.util;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.io.StringBufferInputStream;
import java.nio.charset.StandardCharsets;
import java.util.UUID;

public class SecurityUtil {
    //加密
    public static String encrypt(String password) {
        //生成盐值
        String salt = UUID.randomUUID().toString().replace("-", "");
        //最终密文 = md5(密码 + 盐值)

        //加密
        String password_p = DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));

        return (salt+password_p);
    }

    //验证密码
    public static boolean verify(String password, String finalPassword) {
        if (!StringUtils.hasLength(password)) {
            return false;
        }
        if (finalPassword.length() != 64) {
            return false;
        }
        //获取盐值
        String salt = finalPassword.substring(0, 32);
        //最终密文 = md5(密码 + 盐值)

        String md5 = DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));

        return (salt+md5).equals(finalPassword);
    }

}
